package cn.xiaohui;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FileUtil {
	public static final String SEPARATE_FIELD =",";
	public static final String SEPARATE_LINE ="\r\n";
	public static void saveBooks(Books books){
		Date date =new Date();
		DateFormat format =new SimpleDateFormat("yyyyMMdd");
		String name ="销售记录" +format.format(date)+".csv";
		InputStream inputStream= null;
		try{
			inputStream =new FileInputStream(name);
			if (inputStream != null) {
				inputStream.close();
				createFile(name,true,books);	
			}
		}catch (FileNotFoundException exception){
			createFile(name,false ,books);
		}catch (IOException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	public static void createFile(String name,Boolean lable,Books books){
		BufferedOutputStream out =null;
		StringBuffer sbf =new StringBuffer();
		try{
			if (lable) {
				out =new BufferedOutputStream(new FileOutputStream(name,true));
				
			}else {
				out =new BufferedOutputStream(new FileOutputStream(name));
				String[] fieldSort =new String[] {
						"图书编号","图书名称","购买数量","单价","总价","出版社"
				};
				for (String fieldKey : fieldSort) {
					sbf.append(fieldKey).append(SEPARATE_FIELD);
				}
			}
			
			sbf.append(SEPARATE_LINE);
			sbf.append(books.id).append(SEPARATE_FIELD);
			sbf.append(books.name).append(SEPARATE_FIELD);
			sbf.append(books.number).append(SEPARATE_FIELD);
			sbf.append((double) books.price).append(SEPARATE_FIELD);
			sbf.append((double)books.moneny).append(SEPARATE_FIELD);
			sbf.append(books.Publish).append(SEPARATE_FIELD);
			String string =sbf.toString();
			byte[] b =string.getBytes();
			for (int i = 0; i < b.length; i++) {
				out.write(b[i]);
				}
			}catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
			}finally {
				try{
					if (out != null) {
						out.close();
						}
					}catch (Exception e2) {
						// TODO: handle exception
						e2.printStackTrace();
					}
				}
		}
	}
